home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
pascal
/
csdudes.exe
/
CSPERSON.CPP
< prev
next >
Wrap
Text File
|
1992-06-25
|
12KB
|
418 lines
// Personnell DataBase
// (C) Copyright 1992 Campbell Soup Company by Andrew Frantz
// CSPERSON.CPP
// contains the dialog and paradox engine source for person.db
// CIS --- 70712,3547
// ====================================================================
#include "csdudes.hpp"
// ====================================================================
void PXPerson::PXPerson()
{
// The first PX data class must also initialize the engine
int err;
char *name = getenv("S_USER");
if((err = PXNetInit((char *) PDOXNETPATH, OTHERNET, name)) != PXSUCCESS)
// if((err = PXInit()) != PXSUCCESS)
{
cerr << PXErrMsg(err) << endl;
cerr << "Hit a Key" << endl;
getch();
exit(0);
}
char path[80];
strcpy(path, (char *) DATAPATH);
strcat(path, "\\");
strcat(path, "PERSON");
if((err = open(path, NULL)) != PXSUCCESS)
{
cerr << PXErrMsg(err) << endl;
cerr << "Hit a Key" << endl;
getch();
exit(0);
}
InitFields();
if(recfirst())
{
cerr << "Error getting first record" << endl;
cerr << "Hit a Key" << endl;
getch();
exit(0);
}
}
// =====================================================================
int PXPerson::InitFields()
{
int i = 0;
fldptr [i++] = &LastName;
fldptr [i++] = &FirstName;
fldptr [i++] = &UserName;
fldptr [i++] = &Address1;
fldptr [i++] = &Address2;
fldptr [i++] = &City;
fldptr [i++] = &State;
fldptr [i++] = &Zip;
fldptr [i++] = &Ext;
fldptr [i++] = &HomePhone;
fldptr [i++] = &CostCtr;
fldptr [i++] = &Group;
fldptr [i] = NULL;
LastName.setinfo(*this, "LastName");
FirstName.setinfo(*this, "FirstName");
UserName.setinfo(*this, "UserName");
Address1.setinfo(*this, "Address1");
Address2.setinfo(*this, "Address2");
City.setinfo(*this, "City");
State.setinfo(*this, "State");
Zip.setinfo(*this, "Zip");
Ext.setinfo(*this, "Ext");
HomePhone.setinfo(*this, "HomePhone");
CostCtr.setinfo(*this, "CostCtr");
Group.setinfo(*this, "Group");
return (PXSUCCESS);
}
// =====================================================================
void PXPerson::AddRecord(PersonXferBuffer *data)
{
LastName = data->LastName;
FirstName = data->FirstName;
UserName = data->UserName;
Address1 = data->Address1;
Address2 = data->Address2;
City = data->City;
State = data->State;
Zip = data->Zip;
Ext = data->Ext;
HomePhone = data->HomePhone;
CostCtr = data->CostCtr;
Group = data->Group;
int err;
if((err = recappend()) != PXSUCCESS)
{
messageBox(PXErrMsg(err), mfError);
}
}
// =====================================================================
void PXPerson::ChangeRecord(PersonXferBuffer *data)
{
LastName = data->LastName;
FirstName = data->FirstName;
UserName = data->UserName;
Address1 = data->Address1;
Address2 = data->Address2;
City = data->City;
State = data->State;
Zip = data->Zip;
Ext = data->Ext;
HomePhone = data->HomePhone;
CostCtr = data->CostCtr;
Group = data->Group;
recupdate(); // error handling done in recupdate()
}
// =====================================================================
//void PXPerson::FindRecord(PersonXferBuffer *data)
int PXPerson::FindRecord(char *data)
{
int err;
err = LastName.search(data, SEARCHFIRST);
return(err);
}
// =====================================================================
PersonXferBuffer PXPerson::DisplayRecord()
{
PersonXferBuffer data;
recget();
LastName.get();
FirstName.get();
UserName.get();
Address1.get();
Address2.get();
City.get();
State.get();
Zip.get();
Ext.get();
HomePhone.get();
CostCtr.get();
Group.get();
strncpy(data.LastName, LastName, sizeof(data.LastName));
strncpy(data.FirstName, FirstName, sizeof(data.FirstName));
strncpy(data.UserName, UserName, sizeof(data.UserName));
strncpy(data.Address1, Address1, sizeof(data.Address1));
strncpy(data.Address2, Address2, sizeof(data.Address2));
strncpy(data.City, City, sizeof(data.City));
strncpy(data.State, State, sizeof(data.State));
strncpy(data.Zip, Zip, sizeof(data.Zip));
strncpy(data.Ext, Ext, sizeof(data.Ext));
strncpy(data.HomePhone, HomePhone, sizeof(data.HomePhone));
strncpy(data.CostCtr, CostCtr, sizeof(data.CostCtr));
data.Group = Group;
return(data);
}
// ====================================================================
TPersonDlg::TPersonDlg(const char *title, int type)
: TDialog( TRect( 0, 0, 80, 23), title ),
TWindowInit(&TPersonDlg::initFrame)
{
DlgType=type;
// initialize the struct to 0
cmClear(); // init dlg structs
insert(new TInputLine(TRect(16,2,34,3), 16));
insert(new TInputLine(TRect(36,2,54,3), 16));
insert(new TInputLine(TRect(16,4,31,5), 13));
insert(new TInputLine(TRect(47,4,53,5), 4));
insert(new TInputLine(TRect(16,6,44,7), 26));
insert(new TInputLine(TRect(16,8,44,9), 26));
insert(new TInputLine(TRect(21,10,44,11), 21));
insert(new TInputLine(TRect(46,10,51,11), 3));
insert(new TInputLine(TRect(52,10,65,11), 11));
insert(new TInputLine(TRect(21,12,28,13), 5));
insert(new TInputLine(TRect(17,14,32,15), 13));
TView *control = new TRadioButtons(TRect(60,14,79,18),
new TSItem("Eng Sys",
new TSItem("Utilities",
new TSItem("Real Estate",
new TSItem("Environmental",0)))));
ushort value;
value = 0;
((TCluster*)control)->setData(&value);
insert(control);
insert(new TButton(TRect(55,4,60,6), "*", cmDisplayTheList, bfBroadcast | bfNormal));
insert(new TStaticText(TRect(3,2,14,3), "Last, First"));
insert(new TStaticText(TRect(34,2,35,3), ","));
insert(new TStaticText(TRect(6,4,14,5), "UserName"));
insert(new TStaticText(TRect(38,4,45,5), "CostCtr"));
insert(new TStaticText(TRect(5,6,14,7), "Address 1"));
insert(new TStaticText(TRect(5,8,14,9), "Address 2"));
insert(new TStaticText(TRect(2,10,18,11), "City, State, Zip"));
insert(new TStaticText(TRect(9,12,18,13), "Extension"));
insert(new TStaticText(TRect(8,14,13,15), "Phone"));
insert(new TStaticText(TRect(67,13,72,14), "Group"));
insert(new TStaticText(TRect(44,10,45,11), ","));
insert(new TStaticText(TRect(51,10,52,11), ","));
switch(type)
{
case AddDlg:
insert( new TButton(TRect(3,16,13,18), "~A~dd", cmAddRec, bfDefault | bfBroadcast));
insert(new TButton(TRect(15,16,25,18), "~C~lear", cmClearRec, bfNormal | bfBroadcast));
break;
case EditDlg:
insert(new TButton(TRect(3,16,13,18), "~F~ind", cmFindRec, bfDefault | bfBroadcast));
insert(new TButton(TRect(15,16,25,18), "~C~hange", cmChangeRec, bfNormal | bfBroadcast));
insert(new TButton(TRect(28,16,40,18), "~D~elete", cmDeleteRec, bfNormal | bfBroadcast));
insert(new TButton(TRect(3,19,13,21), "~N~ext", cmNextRec, bfNormal | bfBroadcast));
insert(new TButton(TRect(15,19,25,21), "~P~rev", cmPrevRec, bfNormal | bfBroadcast));
insert(new TButton(TRect(28,19,39,21), "Fi~r~st", cmFirstRec, bfNormal | bfBroadcast));
insert(new TButton(TRect(41,19,51,21), "~L~ast", cmLastRec, bfNormal | bfBroadcast));
setDlgStructs();
break;
default:
break;
}
selectNext(False);
}
// =====================================================================
void TPersonDlg::handleEvent(TEvent& event)
{
TDialog::handleEvent(event);
if( event.what == evBroadcast )
{
switch( event.message.command )
{
case cmInterView:
cmListItemSelect((char *) event.message.infoPtr);
break;
case cmDisplayTheList:
TCCListDlg *pd = new TCCListDlg(TRect(0,0,50,14),"Cost Centers");
//if (::validView(pd) != 0)
//{
TPersonnellApp::deskTop->execView(pd);
destroy(pd);
//}
// cmDisplayList();
break;
case cmAddRec:
cmAdd();
break;
case cmClearRec:
cmClear();
break;
case cmFirstRec:
cmFirst();
break;
case cmPrevRec:
cmPrev();
break;
case cmLastRec:
cmLast();
break;
case cmNextRec:
cmNext();
break;
case cmChangeRec:
cmChange();
break;
case cmDeleteRec:
cmDelete();
break;
case cmFindRec:
cmFind();
break;
c